Connection String |
A connection string is a text string to store several variables and their values. The order is not important. Each variable and its value is separated by a semi colon. The variable and its value are separated by an equal sign. For instance, the connection string, shown below, allows connecting to a Microsoft SQL Server. The DRIVER value must be one that is displayed in the Control Panel > ODBC |
Description | Connection String |
Local server with Windows Authentication | DRIVER={SQL Server};SERVER=localhost\\SQLEXPRESS;DATABASE=my_database;Trusted_Connection=yes |
Local server with Windows Authentication | DRIVER={SQL Server};SERVER=.\\SQLEXPRESS;DATABASE=my_database;Trusted_Connection=yes |
Local DB | DRIVER={SQL Server Native Client 11.0};server=(localdb)\\MSSQLLocalDB;database=my_database;Trusted_Connection=yes |
Local server with Windows Authentication default instance | DRIVER={SQL Server};SERVER=localhost;DATABASE=my_database;Trusted_Connection=yes |
Local server with Windows Authentication default instance | DRIVER={SQL Server};SERVER=.;DATABASE=my_database;Trusted_Connection=yes |
Remote server with SQL authentication | DRIVER={SQL Server};server=10.80.6.9\\SQLEXPRESS;database=my_database;UID=sa;PWD=123 |
Remote server (port) with SQL authentication | DRIVER={SQL Server};server=10.80.6.9,1433\\SQLEXPRESS;database=my_database;UID=sa;PWD=123 |
Tip |
When the connection string is written inside the stdafx.h file, you must escape the backslash and type two backslash's. When the connection string is typed in a textbox, you do not need to escape the backslash, and therefore, only one backslash must be typed. Cuando la cadena de conexión se escribe dentro del archivo stdafx.h, usted debe escapar la diagonal invertida y escribir dos diagonales invertidas. Cuando la cadena de conexión se escribe en una caja de texto, usted no necesita escapar la diagonal invertida, y por lo tanto, solamente se debe escribir una diagonal invertida. |
Specify the database |
In the example below, the circuit_city database will be use. Any SQL command, after this statement, will be applied to the circuit_city database. En el ejemplo de abajo, la base de datos circuit_city será usada. Cualquier comando de SQL, después de este comando, serán aplicados a la base de datos circuit_city. |
my_db.sql |
USE circuit_city; |
Trusted Connection |
When the user logins into a computer, he provides a username and a password to get access to several resources. The user login and password may be in the local computer (Control panel > Users Accounts). Additionally, the login and password may be in a Domain (a local network or wide area network). Trusted Connection means that the credentials (permissions) of the user are set at the moment of logging. Thus, it is not necessary to provide a username and password when using a trusted connection in a connection string. When installing Microsoft SQL Server without remote access, you can use Windows Authentication. However, if you need remote access and you do not have a Domain Controller to provide Windows Authentication, you must install Microsoft SQL Server with Mixed Authentication by setting the password of the sa account. Cuando el usuario se conecta a una computadora, este proporciona un nombre usuario y una clave de acceso para conseguir acceso a varios recursos. El nombre de usuario y clave pueden ser en la computadora local (Panel de Control > Cuentas de Usuario). Adicionalmente, el nombre de usuario y clave pueden ser en un Dominio (en una red local o una red de cobertura amplia). La Trusted Connection significa que las credenciales (permisos) del usuario se establecen en el momento de conectarse. Así, no es necesario proporcionar el nombre de usuario y su clave cuando se usa trusted connection en una cadena de conexión. Cuando se instala Microsoft SQL Server sin acceso remoto, usted puede usar Windows Authentication. Sin embargo, si usted necesita acceso remoto y usted no tiene un Servidor de Dominios que proporcione Windows Authentication, usted debe instalar Microsoft SQL Server con "Mixed Authentication" fijando el clave de acceso de la cuenta sa. |
Create a table |
The example creates a table: name is required while the phone number is optional. Use IDENTITY to automatically generate the IDs. El ejemplo crea una tabla: el nombre es requerido mientras que el número de teléfono es opcional. Use IDENTITY para generar automáticamente los IDs. |
my_db.sql |
CREATE TABLE dbo.people ( people_id INT NOT NULL PRIMARY KEY IDENTITY, name NVARCHAR(45) NOT NULL, telephone NCHAR(10) NULL ); GO |
Tip |
If a column name has spaces, for example if the programmer uses "people id" instead of people_id, you must use squared brackets to define the column as shown below. In fact, you will have to use squared brackets in all SQL commands for those column names that have spaces. Si el nombre de una columna tiene espacios, por ejemplo si el programador usar "people id" en lugar de people_id, usted debe usar los paréntesis cuadrados para definir la columna como se muestra debajo. De hecho, usted tendrá que usar paréntesis cuadrados en todos los comandos de SQL para esos nombres de columnas que tengan espacios. |
my_db.sql |
CREATE TABLE dbo.people ( [people id] INT NOT NULL PRIMARY KEY IDENTITY, name NVARCHAR(45) NOT NULL, telephone NCHAR(10) NULL ); GO |
Simple insert |
The example inserts one row in the department table. El ejemplo inserta un renglón en la tabla departamento. |
my_db.sql |
INSERT INTO department VALUES('C', 'Computer Eng'); GO |
DATE insert |
The example inserts a row in the friend table. El ejemplo inserta un renglón en la tabla amigo. |
my_db.sql |
INSERT INTO friend (birth_date) VALUES('C', 'April 25, 1952'); GO -- INSERT INTO friend(birth_date) VALUES('C', CONVERT(DATETIME, '1952-04-25 00:00:02', 20)); -- GO |
DATETIME insert |
The example inserts a row in the transaccion table. El ejemplo inserta un renglón en la tabla transaccion. |
my_db.sql |
INSERT INTO transaccion (date_time) VALUES('April 25, 1952 11:05 pm'); GO |
SET DATEFORMAT() |
In Microsoft SQL Server, it is possible to set the date format at the moment of performing an INSERT (without affecting the database configuration) as shown below. En Microsoft SQL Server es posible especificar el formato de las fechas en el momento del ingreso de los datos (en forma temporal sin cambiar la configuración de la base de datos) como se muestra debajo. |
SQL |
SET DATEFORMAT dmy GO DECLARE @myVar DATETIME SET @myVar = '12/31/98' SELECT @myVar GO |
SQL |
SET DATEFORMAT ydm GO DECLARE @myVar DATETIME SET @myVar = '98/31/12' SELECT @myVar GO |
SQL |
SET DATEFORMAT ymd GO DECLARE @myVar DATETIME SET @myVar = '98/12/31' SELECT @myVar GO |
Data types |
The table shows some examples of SQL data types. La tabla muestra algunos ejemplos de tipos de datos en SQL. |
Description_Data Types | |
Integer | INT, SMALLINT, TINYINT |
Text with 2 characters | CHAR(2), NCHAR(2) |
Floating point four digits | NUMERIC(4, 1), DECIMAL(4, 1) |
Text | VARCHAR(30), NVARCHAR(30) |
Date and Time | DATETIME (0.0033 sec), SMALLDATETIME (1 minute), DATETIME2 (100 nanosec), DATE (1 day) |
Dates | DATE (1 day) |
Bool | BIT |
Currency | Money |
Keys |
The example creates a relation between two tables using a primary key and a foreign key. El ejemplo crea una relación entre dos tablas usando una llave primaria y una llave extranjera. |
my_db.sql |
CREATE TABLE dbo.employee ( emp_id INT NOT NULL PRIMARY KEY, name NVARCHAR(20) NOT NULL ); CREATE TABLE dbo.emp_skill ( emp_id INT NOT NULL REFERENCES employee(emp_id), skill_id INT NOT NULL REFERENCES skill(skill_id), PRIMARY KEY (emp_id, skill_ID) ); GO |
Cascade Delete |
The example shows how to setup delete cascade. El ejemplo muestra como configurar borrar en cascada. |
my_db.sql |
CREATE TABLE payroll ( emp_id INT(10) NOT NULL REFERENCES employee.emp_id ON DELETE CASCADE, descr VARCHAR(20) NOT NULL ); GO |
Unique Values |
In the example, two or more students cannot have the same name. En el ejemplo, dos o más estudiantes no pueden tener el mismo nombre. |
my_db.sql |
CREATE TABLE dbo.student ( student_id INT NOT NULL PRIMARY KEY, name NVARCHAR2(45) UNIQUE NOT NULL ); |
Deleting Data |
The example deletes the employee with emp_id 100. El ejemplo borra al empleado con emp_id 100. |
my_db.sql |
DELETE FROM employee WHERE emp_id=100; |
Altering a table |
In the first example, the primary key of the table is added after creating the table. In the second example, a foreign key is added to the emp_skill table. En el primer ejemplo, la llave primaria de la tabla es agregada después de crear la tabla. En el segundo ejemplo, una llave extranjera es agregad a la tabla emp_skill. |
my_db.sql |
CREATE TABLE dbo.frame ( frame_id SMALLINT NOT NULL, name NVARCHAR(30) ); ALTER TABLE frame ADD PRIMARY KEY (frame_id); GO CREATE TABLE dbo.emp_skill ( emp_id INT NOT NULL, skill_id INT NOT NULL ); ALTER TABLE emp_skill ADD FOREIGN KEY (emp_id) REFERENCES employee(emp_id); GO |
Data Validation |
In first the example, the weight column has a CONSTRAINT called validate_weight to ensure a value from 0 to 300. In the second example, the state can be either NY or NJ. En el primer ejemplo, la columna peso tiene una restricción llamada validate_weight para asegurar un valor desde 0 a 300. En el segundo ejemplo, el estado puede ser ya sea NY o NJ. |
my_db.sql |
CREATE TABLE dbo.patient ( patient_id INT NOT NULL PRIMARY KEY, name NVARCHAR2(20) NOT NULL, weight INT(3) CONSTRAINT validate_weight CHECK (weight BETWEEN 0 AND 300) ); GO CREATE TABLE dbo.store ( store_id INT NOT NULL PRIMARY KEY INDENTITY, state NCHAR(2) CHECK (state='NY' OR state='NJ') ); GO |
Dropping Objects |
In the previous example to remove the CONSTRAINT called validate_weight, you may use: DROP CONSTRAINT validate_weight. To destroy the store table: DROP TABLE store. En el ejemplo previo para remover la CONSTRAINT llamada validate_weight, usted puede usar DROP CONSTRAINT validate_weight. Para destruir la tabla store: DROP TABLE store. |
Database Date |
The example below automatically inserts the current date and time. En el ejemplo de abajo se inserta automáticamente la fecha y el tiempo actual. |
my_db.sql |
CREATE TABLE dbo.sale ( sale_id INT NOT NULL PRIMARY KEY IDENTITY, sale_date DATE NOT NULL DEFAULT GETDATE() ); GO |
Modifying an Object |
In first the example, the admission column is added after creating the table. In the second example, the name column is changed from NVARCHAR(20) to NVARCHAR(30). En el primer ejemplo, la columna admission se agrega después que la tabla ha sido creada. En el segundo ejemplo, el estado puede ser ya sea NY o NJ. |
my_db.sql |
CREATE TABLE patient ( patient_id NUMBER NOT NULL, name NVARCHAR(20) NOT NULL ); GO ALTER TABLE patient ADD admission DATE NOT NULL; GO ALTER TABLE patient MODIFY name NVARCHAR(30); GO |
Tip |
Trying to alter a table structure, when the table contains data, may not always be possible. Always populate your table after you have defined the table structure. Intentar alterar la estructura de una tabla, cuando la tabla contiene datos, puede no ser siempre posible. Siempre introduzca datos a una tabla después de haber definido su estructura. |
Microsoft SQL Server and Microsoft Excel |
The code below illustrates how it is possible to import from a Microsoft Excel document. You need to install Microsoft ACE Oledb to use this tool. Additionally, you may need to install Microsoft SQL Service pack to use this command. El código de abajo ilustra cómo es posible importar desde un documento de Microsoft Excel. Usted necesita instalar Microsoft ACE Oledb para usar esta herramienta. Adicionalmente, usted necesita instalar el service pack de Microsoft SQL para usar este comando. |
excel_to_sql.sql |
CREATE TABLE my_table ( ... ); GO INSERT INTO my_table SELECT * FROM OPENROWSET ( 'Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\Users\Peter\my_doc.xlsx;HDR=YES', 'SELECT * FROM [Sheet1$]' ); GO |
Deleting a database (DROP DATABASE) |
To delete a database you can use DROP DATABASE. You cannot destroy a database when there are open connections to this database. If you try to delete a database when there are users connect to it, you will get the following error. Para borrar una base de datos usted puede usar DROP DATABASE. Usted no puede destruir una base de datos cuando hay conexiones abiertas a esta base de datos. Si usted trata de borrar una base de datos cuando hay usuarios conectados a esta, usted obtendrá el siguiente error. |
MSDOS: cmd.exe |
Msg 3702, Level 16, State 4, Line 3 Cannot drop database "test" because it is currently in use. |
Who |
To list of the users that are connected to the databases, execute the sp_who2 stored procedure as shown. Para listar los usuarios que están conectados a las bases de datos, ejecute el procedimiento almacenado sp_who2 como se muestra. |
Test.sql |
USE master; EXEC sp_who2; |
KILL |
You can use KILL to terminate connections to a database. You can use the SPID returned by sp_who2 to kill a specific connection as shown. Usted puede usar KILL para terminar conexiones a una base de datos. Usted puede usar el SPID que regresa sp_who2 para terminar una conexión específica como se muestra. |
Test.sql |
USE master; KILL 50; |
The sa account |
In Microsoft SQL Server the sa account is the System Administrator account. You can connect to a Microsoft SQL Server using this account. By default, this account is disabled. To enable the sa account see the SQL code below. En Microsoft SQL la cuenta sa es la cuenta del Administrador del Sistema. Usted puede conectarse a un Servidor Microsoft SQL usando esta cuenta. Por defecto, esta cuenta esta deshabilitada. Para habilitar la cuenta sa vea el código de SQL de abajo. |
enable_sa.sql |
USE master GO CREATE LOGIN [sa] WITH PASSWORD = N'123'; ALTER LOGIN [sa] ENABLE; GO --ALTER LOGIN [sa] WITH PASSWORD='123Lupita'; --GO |
MDF files |
A Microsoft SQL Server database is stored in a MDF file. When an SQL file is executed, a MDF file is created or is modified. MDF files are stored in the hard drive and their locations depend on the version of Microsoft SQL Server and folder installation. The location for SQL Express is : C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA Una base de datos de Microsoft SQL Server es almacenada en un archivo MDF. Cuando un archivo SQL se ejecuta, un archivo de MDF es creado o modificado. Los archivo MDF son almacenados en el disco duro y su ubicación depende de la versión de Microsoft SQL Server y la carpeta de instalación. La ubicación para el SQL Express es: C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA |
SQLCMD.EXE |
It is a command line program that can be used to run SQL scripts in Microsoft SQL Server. The command shown below executes the aeromexico.sql file on the local computer. SQLCMD.EXE is located in the Microsoft SQL Server folder, if you have several versions of Microsoft SQL Server installed, you may have several versions of SQLCMD.EXE.
Es un programa de comando de línea que puede ser usada para correr scripts de SQL in Microsoft SQL Server. El comando de abajo ejecuta el archivo aeromexico.sql en la computadora local. SQLCMD.EXE está ubicado en la carpeta de Microsoft SQL Server, si usted tiene varias versiones de Microsoft SQL Server instaladas, usted puede tener varias versiones de SQLCMD.EXE.
|
Tip |
If you do not have Windows Authentication, you need to provide an username and a password to connect to an SQL Server as shown below. In this example the username is sa and the password for this user is 123easy. "C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd.exe" -U sa -P 123easy -S localhost\SQLExpress -i aeromexico.sql Si usted no tiene Audentificación de Windows, usted necesita proporcionar un nombre de usuario y su clave de acceso para conectarse a un Servidor de SQL como se muestra debajo. En este ejemplo el nombre de usuario es sa y su clave de acceso es 123easy. "C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd.exe" -U sa -P 123easy -S localhost\SQLExpress -i aeromexico.sql |
Database Backup |
Choose a point in time with little or null activity in the database to perform the backup. The first hours of Sunday (2:00 a.m.) are good choices. Additionally, be sure that the date is not special in terms of database activity for your company.
Escoja un punto en el tiempo con poca actividad o sin actividad en la base de datos para realizar el respaldo. Las primeras horas del Domingo (2:00 a.m.) son buenas opciones. Adicionalmente, asegúrese de que la fecha no sea especial en términos de actividad en la base de datos para su compañía.
|
MyBackup.sql |
USE my_database; GO --___________________________________________________________________ 1. PREVENT OTHER USERS TO CONNECT ALTER DATABASE my_database SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE --___________________________________________________________________ 2. BACKUP BACKUP DATABASE my_database TO DISK = 'C:\selo\my_database.bak' WITH FORMAT, MEDIANAME = 'C_SQLServer_mydatabase', NAME = 'SQL_mydatabase_22OCT2016'; GO --___________________________________________________________________ 3. RESTORE ACCESS ALTER DATABASE my_database SET MULTI_USER |
Restore a Database |
Use the code below to restore a Microsoft SQL Server database. Use el código mostrado debajo para restablecer una base de datos de Microsoft SQL Server. |
MyRestore.sql |
USE master; GO RESTORE DATABASE my_database FROM DISK = 'C:\selo\my_database.bak'; GO |
List of SQL Servers |
If the SQL Server Browser service is running, you can use sqlcmd.exe to list the names of the SQL Servers in your network. "C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd.exe" -L Si el servicio de SQL Server Browser está corriendo, usted puede usar sqlcmd.exe para listar el nombre de los Servidores de SQL en su red. "C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd.exe" -L |
Tip |
To check the name of the instances of Microsoft SQL Server you may check the server registry (regedit.exe): HKEY_LOCAL_MACHINE > Software > Microsoft > Microsoft SQL Server > Instance Names Para verificar el nombre de las instancias Microsoft SQL Server usted puede checar el registro en el servidor (regedit.exe): HKEY_LOCAL_MACHINE > Software > Microsoft > Microsoft SQL Server > Instance Names |
Tip |
During Microsoft SQL Server installation, be sure to change the account name of the database engine to "LOCAL SERVICE". (The account name by default is ComputerName\SQLExpress and you must select "LOCAL SERVICE"). Durante la instalación de Microsoft SQL Server, asegúrese de cambiar el nombre de la cuenta de la "database engine" a "LOCAL SERVICE". (En nombre de la cuenta por defecto es NombreComputadoa\SQLExpress y usted debe seleccionar "LOCAL SERVICE"). |
Firewall Configuration |
You must change the Firewall Configuration so that you can access remotely Microsoft SQL Server. Open Windows Firewall > Exceptions Tab > Add port or Inbound Rules > New Rule > port. At this point you should add a name, the port number 1433 and the TCP protocol. Using the same procedure add the port 1434 with the UDP protocol. Additionally, in the Exceptions Tab, you must add the programs: sqlservr.exe and sqlbrowser.exe by clicking the "Add Program" button, and then, using the "Browser" button to find these two executable. Usted debe modificar la configuración Corta Fuegos para que usted pueda accesar en forma remota Microsoft SQL Server. Abra el Firewall de Windows > Pestaña de Exceptiones > Agregar puerto o Reglas de Entrada > Nueva Regla > puerta. En este punto usted debe agregar un nombre el número de puerto 1433 y el protocolo de TCP. Usando el mismo procedimiento agregue el puerto 1434 con el protocolo UDP. Adicionalmente, en la pestaña de Excepciones, usted debe agregar los programas: sqlservr.exe and sqlbrowser.exe haciendo clic en el botón de "Agregar Programa", y entonces, usar el botón "Examinar" para encontrar estos dos ejecutables. |
SQL Server Configuration Manager |
Select "SQL Server Network Configuration" in the left panel, then, select "Protocols for SQLEXPRESS": enable "Shared Memory", enable "Named Pipes", enable "TCP/IP" and enable "VIA". Select "TCP/IP" and make right click to open the context menu, then select "Properties", in the "IP Addresses" tab in "IP ALL" set the option "TCP Port" to 1433. Selecciona "SQL Server Network Configuration" en el panel de la izquierda, entonces seleccione "Protocols for SQLEXPRESS": habilite "Shared Memory", habilite "Named Pipes", habilite "TCP/IP" y habilite "VIA". Seleccione "TCP/IP" y haga clic con el botón derecho del ratón para abrir el menú de contexto, entonces selecciones "Propiedades", en la pestaña de "IP Addresses" en "IP ALL" fije la opción "TCP Port" a 1433. |